Guard Digit
   HOME

TheInfoList



OR:

In
numerical analysis Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic computation, symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of ...
, one or more guard digits can be used to reduce the amount of
roundoff A roundoff (also called Arab(ian) Spring move) is a move in gymnastics similar to a cartwheel, except the gymnast lands with two feet placed together on the ground instead of one foot at a time, facing the direction of arrival. It is a gymnas ...
error. For example, suppose that the final result of a long, multi-step calculation can be safely rounded off to ''N'' decimal places. That is to say, the roundoff error introduced by this final roundoff makes a negligible contribution to the overall uncertainty. However, it is quite likely that it is ''not'' safe to round off the intermediate steps in the calculation to the same number of digits. Be aware that roundoff errors can accumulate. If ''M'' decimal places are used in the intermediate calculation, we say there are ''M−N'' guard digits. Guard digits are also used in floating point operations in most computer systems. Given 2^1 \times 0.100_2 - 2^0 \times 0.111_2 we have to line up the binary points. This means we must add an extra digit to the first operand—a guard digit. This gives us 2^1 \times 0.1000_2 - 2^1 \times 0.0111_2. Performing this operation gives us 2^1 \times 0.0001_2 or 2^ \times 0.100_2. Without using a guard digit we have 2^1 \times 0.100_2 - 2^1 \times 0.011_2, yielding 2^1 \times 0.001_2= or 2^ \times 0.100_2. This gives us a relative error of 1. Therefore, we can see how important guard digits can be. An example of the error caused by floating point roundoff is illustrated in the following C code. int main() It appears that the program should not terminate. Yet the output is :
i=54, a=1.000000
Another example is: Take 2 numbers:
2.56\times 10^0 and 2.34\times 10^2
we bring the first number to the same power of 10 as the second one:
0.0256\times 10^2 The addition of the 2 numbers is:
0.0256*10^2 
2.3400*10^2 +  
____________ 
2.3656*10^2 
After padding the second number (i.e., 2.34\times 10^2 ) with two 0s, the bit after 4 is the guard digit, and the bit after is the round digit. The result after rounding is 2.37 as opposed to 2.36, without the extra bits (guard and round bits), i.e., by considering only 0.02+2.34 = 2.36. The error therefore is 0.01.


References

*
Forman S. Acton Forman Sinnickson Acton (August 10, 1920 – February 18, 2014) was an American computer scientist, engineer, educator and author. He was an emeritus professor in the Department of Computer Science at Princeton University. Education Acton b ...
. ''Numerical Methods that Work'', The Mathematical Association of America (August 1997). * Higham, Nicholas J. ''Accuracy and Stability of Numerical Algorithms'', Washington D.C.: Society for Industrial & Applied Mathematics, 2002.
IEEE 754 round-off errors
Numerical analysis Articles with example C code {{mathanalysis-stub